namespace CL_ASSIGN_NON_CONST_ARG {
	class MyClass {
	public:
		MyClass& operator=(const MyClass&);
	};

	class C {
		//...
	public:
		C& operator=(const C& rhs) {
			return rhs;
		}
		//...
	};

	class C {
		//...
	public:
		C& operator=(C& rhs) {
			return rhs;
		}
		//...
	};

	class C {
		//...
	public:
		C& operator=(C&);
		C(int);
		//...
	};
	//...
	C obj = 10;

	class C {
		//...
	public:
		C& operator=(C& rhs) {
			return rhs;
		}
		//...
	};

	class C {
		//...
	public:
		C& operator=(const C& rhs) {
			return *this;
		}
		//...
	};
}